package io.github.xxyopen.novel.service;

import io.github.xxyopen.novel.core.common.resp.PageRespDto;
import io.github.xxyopen.novel.core.common.resp.RestResp;
import io.github.xxyopen.novel.dao.entity.Practice;
import io.github.xxyopen.novel.dao.entity.PracticeComment;
import io.github.xxyopen.novel.dao.entity.StuBehavior;
import io.github.xxyopen.novel.dao.entity.StuPractice;

import java.util.List;

public interface PracticeService {

    List<Practice> getListSlider();

    RestResp<Practice> getPracticeById(Integer id);

    RestResp addComment(PracticeComment practiceComment);

    RestResp<PageRespDto<PracticeComment>> getComments(Long practiceId, Integer pageNum, Integer pageSize);

    void clickPractice(StuBehavior stuBehavior);

    RestResp singUpPractice(StuPractice stuPractice);

    RestResp getPracticeStatus(Long stuId, Long practiceId);

    void updatePractice(Practice practice);

    void likeOrCollectPractice(StuBehavior stuBehavior);

    RestResp getMySignUpPractice(Long stuId, Integer pageNum, Integer pageSize);

    RestResp getMyCollection(Long stuId, Integer pageNum, Integer pageSize);

    RestResp getRecentPublish();

    RestResp getThisWeekHot();

    RestResp getRecentDeadline();

    RestResp getClickRank();

    RestResp searchPractice(Integer pageNum, Integer pageSize, String key, String sort);
}
